package com.xxx.car.mapper;

import com.xxx.car.entity.TbChargeDetail;
import com.xxx.car.entity.TbChargeStatistics;
import com.xxx.car.entity.TbChargeUserStatistics;
import com.xxx.car.entity.vo.request.ReqChargeDetailQuery;
import com.xxx.car.entity.vo.request.ReqChargeDetailQueryForAdmin;
import com.xxx.car.entity.vo.request.ReqChargeTotalStatistics;
import com.xxx.car.entity.vo.request.ReqChargeUserStatistics;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface TbChargeDetailMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(TbChargeDetail record);

    int insertSelective(TbChargeDetail record);

    TbChargeDetail selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(TbChargeDetail record);

    int updateByPrimaryKey(TbChargeDetail record);

    List<TbChargeDetail> query(ReqChargeDetailQuery reqChargeDetailQuery);

    TbChargeStatistics totalStatistics(ReqChargeTotalStatistics reqChargeTotalStatistics);

    List<Integer> findChargedUserId(ReqChargeUserStatistics reqChargeUserStatistics);

    List<TbChargeUserStatistics> userStatistics(@Param("userIds") List<Integer> userIds);

    List<TbChargeDetail> findChargeOrder(ReqChargeDetailQueryForAdmin reqChargeDetailQueryForAdmin);

    List<TbChargeDetail> findByOrderIds(@Param("orderIds") List<String> orderIds);
}